package demo.sqlite;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

/**
 * 
 * 1) Here is an example to select a file C:\work\mydatabase.db (in Windows)
 * Connection connection = DriverManager.getConnection("jdbc:sqlite:C:/work/mydatabase.db");
 * 
 * 2) A UNIX (Linux, Mac OS X, etc) file /home/leo/work/mydatabase.db
 * Connection connection = DriverManager.getConnection("jdbc:sqlite:/home/leo/work/mydatabase.db");
 * 
 * @author pactera
 *
 */
public class HowToSpecifyDatabaseFiles {

	public static void main(String[] args) {
		Connection connection = null;
		try {
			/**
			 * create a database connection
			 * 
			 * path to 'c:/work/mydatabase.db': 'c:\work' does not exist
			 */
			connection = DriverManager.getConnection("jdbc:sqlite:c:/work/mydatabase.db");
			Statement statement = connection.createStatement();
			statement.setQueryTimeout(30); // set timeout to 30 sec.

			statement.executeUpdate("drop table if exists person");
			statement.executeUpdate("create table person (id integer, name string)");
			statement.executeUpdate("insert into person values(1, 'leo')");
			statement.executeUpdate("insert into person values(2, 'yui')");
			ResultSet rs = statement.executeQuery("select * from person");
			while (rs.next()) {
				// read the result set
				System.out.println("name = " + rs.getString("name"));
				System.out.println("id = " + rs.getInt("id"));
			}
		} catch (SQLException e) {
			// if the error message is "out of memory",
			// it probably means no database file is found
			System.err.println(e.getMessage());
		} finally {
			try {
				if (connection != null)
					connection.close();
			} catch (SQLException e) {
				// connection close failed.
				System.err.println(e);
			}
		}
	}
}
